package com.wang.designpattern.mediator;

/**
 * 中介者模式-智能家庭的操作流程
 * 1、创建ConcreteMediator对象
 * 2、创建各个同事类 Alarm、CoffeeMachine、TV等
 * 3、在创建同事类对象的时候，通过构造器加人到colleagueMap中
 * 4、同事类的对象，可以调用sendMessage，最终会调用ConcreteMediator的getMessage方法
 * 5、getMessage会根据收到的同事类对象发出的消息，来协调调用其它的同事类对象，完成任务
 * 6、可以看到getMessage是核心方法，完成相应任务
 */
public class Client {
    public static void main(String[] args) {
        Mediator mediator = new ConcreteMediator();
        Alarm alarm = new Alarm(mediator, "Alarm");
        CoffeeMachine coffeeMachine = new CoffeeMachine(mediator, "CoffeeMachine");
        Curtain curtain = new Curtain(mediator, "Curtain");
        TV tv = new TV(mediator, "TV");

        alarm.sendAlarm(0);
        coffeeMachine.receiveMessage(1);
        alarm.sendAlarm(1);
    }
}
